1. Field of the Invention
The present invention relates generally to the data processing field, and more particularly, to a computer implemented method for routing and delivering messages based on evaluation of quality of information payloads.
2. Description of the Related Art
A publish-subscribe messaging system has two types of clients. Publisher clients generate messages, also referred to as events, containing a topic and some data content. Subscriber clients request a criterion, also called a subscription, specifying the kind of information, based on published messages, the system is to deliver in the future. Publishers and subscribers are anonymous to each other, meaning that publishers do not necessarily know how many subscribers there are or where they are located; and subscribers do not necessarily know where the publishers are located.
A topic-based publish-subscribe messaging system is a system in which subscriptions specify topics of messages which subscriber clients wish to receive. A content-based, publish-subscribe messaging system is a system in which delivered messages are a possibly filtered subset based on the content of published messages; and the subscription criterion is a property that can be tested on each message independent of any other message. For example, a filter may determine whether “topic=stock-ticker/GE” or “Stock/IBM/trade:volume>1000”. Content-based or topic-based publish-subscribe systems are referred to herein as “stateless” systems.
There are pre-existing and emerging technologies to solve deficiencies of content-based publish-subscribe systems as they only support limited filtering capability. For example, mediators to process or transform messages may be introduced into the flow of traditional messaging middleware. Although this is a useful concept, in current manifestations, mediators are complex to program and require external database services in order to store and access state. Also, groups of mediators cannot be automatically combined in current implementations.
In addition, with the advent of highly capable, wirelessly connected, widely distributed sensor networks, scenarios are emerging which require intelligent delivery of collected data in a timely fashion. These distributed sensor networks include sensors that capture audio and video, and they can provide a wealth of data, which may overlap in scope (for example, fields of view) and coverage (for example, spatial and temporal), thus varying in quality of data as well as provide potentially new types of messages. While the evolution of the Web has increased information available via user pull, these new scenarios also describe increased information available via push and via rich media streams.
Consider, for example, location information published by various sources including GPS, cell phone triangulation, etc. A subscription to receive messages is needed not only about the location of interest, but also about the quality of the location information, for example, the precision of location data in terms of longitudinal or latitude degrees, or to a finer level of within a few millimeters of the desired location. As an example, an employer may subscribe to information about an employee engaged in repair services, carrying a wireless device including location information. The employer may wish to obtain messages containing such location, selected for their precision. A location message based on GPS can provide the location of an office building which the employee has entered, and a wifi triangulation service might provide a location of which office the employee had entered.
Another example is temperature information published by various sources including weather bureaus, car thermometers, sensors on a manufacturing floor, etc. Often, a subscription to trigger an alarm, for example, needs to specify not only the temperature of interest, but also the quality of the temperature granularity. If a person monitors weather information, a precision within a few degrees may be tolerable. On the other hand, a temperature sensor mounted on a manufacturing floor needs to provide information to a finer level of granularity, for example, to the tenth of a degree. An individual interested in how to dress for the day may subscribe to temperatures precise to a 5 degree range. The same individual may require temperature precise to a fraction of a degree in order to determine if gardens are in danger of freezing.
In addition, when messages carry multimedia payloads, different kinds of quality requirements become paramount. Consider, for example, a problem encountered by a battlefield commander. The commander must keep aware of events transpiring on the battlefield. Low resolution satellite image feeds, higher resolution tank image feeds, and other multimedia information of relevance is being captured, but the commander bears the burden of sorting all the images after they are received in order to obtain the most informative image or images. It would be advantageous to provide a mechanism that enables the commander to set up desired criteria for these multimedia messages ahead of time in such a way that he or she can choose to preferentially receive the most desired image(s).
Current publish-subscribe messaging systems do not provide such a capability. As indicated previously, they may contain some filtering capabilities as well as mediations that perform message transformation of single or multiple messages. Generally, however, these mediations examine individual messages and perform their task in relation to those individual messages. There are some mediations or message transformations which examine multiple messages in order to perform their task. An example is a mediation that provides an “average” computation. These mediations, however, only operate on simple text or numeric message attributes to provide a derived state to the subscriber.
Continuing the battlefield scenario described above, there may be other subscribers, in addition to the battlefield commander, with different criteria. For example, a tank commander may want to receive images of a long view ahead of the tank in order to avoid ambush. This subscription must be satisfied from the same sensor data as that of the battlefield commander; however, for this user, the criteria will be different (for example, depth-of-view, movement identified or the like).
For the most part, current technology acts on individual messages rather than on a stream of messages. However, aggregation of message data is known. For example, SMILE technology (see “Relational Subscription Middleware for Internet-Scale Publish-Subscribe”, Yuhui Jin and Rob Strom, 2nd International Workshop on Distributed Event-Based Systems (DEBS'03), 2003) can aggregate information from multiple streams, and deliver a message based on this aggregation. SMILE technology, for example, is capable of taking streams representing sales of seats on multiple airline flights, and delivering a current number of available seats on the k cheapest flights to London to a subscriber. No current technology, however, uses samples from a multimedia stream in order to determine whether to deliver multiple messages from the stream, nor do current mediations compare messages from different streams in order to determine which of them should be delivered.
There is, accordingly, a need for a mechanism that can analyze message streams to determine which streams, or parts of streams, should be delivered to one or more users to provide a higher quality of information as specified by the one or more users.